﻿//-------------------------------------------------------------------
//	Copyright (c) 2010-2014  Zhirnov Andrey
//	All rights reserved.
//-------------------------------------------------------------------

/*
*	This library is free software; you can redistribute it and/or
*	modify it under the terms of either:
*		1. The GNU Lesser General Public License.
*		2. The New BSD License.
*
*	Full license see in "UX_STL.h".
*/

/*
	Supported Compilers:
		* Microsoft Visual C++ Compiler (version 10)
		* GNU C++ Compiler (version 4.4)
*/


#ifndef _UXS_STL_CORE_H
#define _UXS_STL_CORE_H

#pragma once


// Include main directives  //
#include "Defines/Init.h"


// Defines //
#include "Defines/Defines.h"
#include "Defines/Errors.h"


// Base Types //
#include "BaseTypes/Types.h"
#include "BaseTypes/TLimit.h"
#include "BaseTypes/TFixed.h"
#include "BaseTypes/TFloat.h"
#include "BaseTypes/THalf.h"
#include "BaseTypes/TUFloat.h"
#include "BaseTypes/TBitfield.h"
#include "BaseTypes/TypeCast.h"


// Compile Time //
#include "CompileTime/TemplateMath.h"
#include "CompileTime/TemplateUtils.h"
#include "CompileTime/TTypeInfo.h"
#include "CompileTime/TypeList.h"
#include "CompileTime/TypeTraits.h"
#include "CompileTime/Signature.h"
#include "CompileTime/TFractional.h"
#include "CompileTime/TStaticFloat.h"
#include "CompileTime/TStaticInteger.h"


// Types //
#include "Types/MemFunc.h"
#include "Types/Utils.h"
#include "Types/FileAddress.h"
#include "Types/TAutoPtr.h"
#include "Types/TSimplePtr.h"
#include "Types/Function.h"
#include "Types/TOptional.h"
#include "Types/MemFunc2.h"
#include "Types/CReferenced.h"
#include "Types/Singleton.h"
#include "Types/TAtomic.h"
#include "Types/StringUtils.h"
#include "Types/StringParser.h"
#include "Types/TBufferedPtr.h"


// Dimensions //
#include "Dimensions/ByteAndBit.h"
#include "Dimensions/RadiansAndDegrees.h"
#include "Dimensions/PhysicsValue.h"
#include "Dimensions/PhysicsValueVec.h"
#include "Dimensions/PhysicsValueMath.h"
#include "Dimensions/Percentage.h"


// Containers //
#include "Containers/Algorithms.h"
#include "Containers/Sorts.h"
#include "Containers/TAllocator.h"
#include "Containers/TArray.h"
#include "Containers/TStaticArray.h"
#include "Containers/TDynamicStack.h"
#include "Containers/TString.h"
#include "Containers/TStaticString.h"
#include "Containers/TStaticStack.h"
#include "Containers/TQueue.h"
#include "Containers/TSet.h"
#include "Containers/TMap.h"
#include "Containers/MemMover.h"
#include "Containers/TCircularQueue.h"
#include "Containers/TPair.h"


// Math //
#include "Math/Mathematics.h"
#include "Math/MathTypes.h"
#include "Math/FastMath.h"
#include "Math/TVec.h"
#include "Math/TLine.h"
#include "Math/TRect.h"
#include "Math/TCircle.h"
#include "Math/Color.h"
#include "Math/TMatrix2.h"
#include "Math/TMatrix3.h"
#include "Math/TMatrix4.h"
#include "Math/TQuaternion.h"
#include "Math/TR11G11B10F.h"
#include "Math/TRGB9_E5.h"
#include "Math/Utils.h"
#include "Math/Algebra.h"


// Math/Rand //
#include "Math/Rand/Random.h"
#include "Math/Rand/RandomWithChance.h"
#include "Math/Rand/Pseudorandom.h"
#include "Math/Rand/NormalDistribution.h"


// OS //
#include "OS/OSLowLevel.h"


// File //
#include "File/BaseFile.h"
#include "File/HDDFile.h"
#include "File/MemFile.h"
#include "File/SubFile.h"
#include "File/CryptFile.h"


#endif	// _UXS_STL_CORE_H